/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package muhnes.sizoo.controlador;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;
import javax.faces.model.SelectItem;
import muhnes.sizoo.dal.RestauracionDao;
import muhnes.sizoo.dal.RestauracionDaoImpl;
import muhnes.sizoo.dal.EspecimenDao;
import muhnes.sizoo.dal.EspecimenDaoImpl;
import muhnes.sizoo.modelo.Restauracion;
import muhnes.sizoo.modelo.Especimen;
/**
 *
 * @author Ricardo Orellana
 */
@ManagedBean(name = "restauracionBean")
@ViewScoped
public class RestauracionBean implements Serializable {
    
    private Restauracion restauracion;
    private List<Restauracion> listaRestauraciones;
    private List< SelectItem > itemsEspecimenes;

    public RestauracionBean() {
        RestauracionDao dao = new RestauracionDaoImpl();
        restauracion = new Restauracion();
        listaRestauraciones = dao.buscarTodos();
    }

     public Restauracion getRestauracion() {
        return restauracion;
    }

    public void setRestauracion(Restauracion restauracion) {
        this.restauracion = restauracion;
    }
    
    
    public List<Restauracion> getListaRestauraciones() {
        if( listaRestauraciones == null ) {
            RestauracionDao dao = new RestauracionDaoImpl();
            listaRestauraciones = dao.buscarTodos();
        }
        return listaRestauraciones;
    }

    
    public void prepararAdicion( ActionEvent event  ){
        restauracion = new Restauracion();
    }
    
    public void prepararModificacion( Restauracion restauracion ){
        this.restauracion = restauracion;
    }
    
    public void prepararEliminacion( Restauracion restauracion ){
        this.restauracion = restauracion;
    }
    
    public void agregarRestauracion( ActionEvent event ){
        RestauracionDaoImpl dao = new RestauracionDaoImpl();
//        System.out.println (restauracion.getCodigorestauracion());
//        System.out.println (restauracion.getEspecimen());
//        System.out.println (restauracion.getObservaciones());
//        restauracion.setEspecimen(restauracion.getEspecimen());
        dao.guardar( restauracion );
        recrearLista();
    }
    
     public void actualizarRestauracion( ActionEvent event ){
        RestauracionDaoImpl dao = new RestauracionDaoImpl();
        dao.actualizar( restauracion );
        recrearLista();
    }
    
    public void eliminarRestauracion( ActionEvent event ){
        RestauracionDaoImpl dao = new RestauracionDaoImpl();
        dao.eliminar( restauracion );
        recrearLista();
    }
    
    
     public List< SelectItem > getItemsEspecimenes() {
        if( itemsEspecimenes == null ) {
            itemsEspecimenes = new ArrayList< SelectItem >();
            EspecimenDao dao = new EspecimenDaoImpl();
            for( Especimen especimen : dao.buscarTodos() ) {
                SelectItem item = new SelectItem( especimen, especimen.getCodigoespecimen() );
                itemsEspecimenes.add( item );
            }
        }
        return itemsEspecimenes;
    }
    
    void recrearLista() {
        listaRestauraciones = null;
    }
    
}
